#ifndef __BGOD_TEXTURE_H__
#define __BGOD_TEXTURE_H__

#include "bgod.h"
//#include "imageloader.h"

using BGOD::Texture;

class Texture
{
    public:
        enum _textures {
            INVALID_TEXTURE = -1,
            SIMPLE = 0,
            DARK_FLOOR,
            DARK_WALL,
            SCREEN,
            NUMBER_OF_TEXTURES
        };

        static Texture* textureArray;
        static Texture* get(int textureIndex);
        static void setUp();
        static void tearDown();

        Texture ();
        Texture (const char* filename);
        ~Texture () { };

        inline GLuint getId() { return id; }
        inline int getHeight() { return height; }
        inline int getWidth() { return width; }

        inline Texture& operator=(Texture other) {
            id = other.getId();
            width = other.getWidth();
            height = other.getHeight();
            return *this;
        }

    private:
        GLuint id;
        int height,width;
};

#endif /* __BGOD_TEXTURE_H__ */

